Computing systems, such as personal computers, portable computing platforms, gaming systems, and servers, can include graphics processors along with main/central processors. These graphics processors, sometimes referred to as graphics processing units (GPUs), can be integrated into the central processors or discretely provided on separate add-in cards, among other configurations. User applications, operating systems, video games, or other software elements can interface with GPUs using various application programming interfaces (APIs) that allow for standardized software/logical interfaces between the software elements and various GPU hardware elements.
Most GPUs can have specialized roles for rendering both two-dimensional (2D) and three-dimensional (3D) graphics data for display, such as graphics data from operating systems, productivity applications, entertainment media, scientific analysis, gaming software, or other graphics data sources. GPUs can also be employed in general purpose processing environments, such as artificial intelligence, machine learning, neural nets, statistical analysis, and cryptocurrency mining. Within the GPUs, various internal stages can process graphics data into rendered images for display on a suitable display device. In many GPUs, these internal stages comprise a graphics pipeline that can take representations of scenes or user interfaces and render these into images for output to various display devices. Among these GPU stages are shader stages and other stages and functions that provide graphical details, surface texture mapping, colors, shadows, or other elements for portions of rendered images.